On occasion, processes (e.g., applications executing on a computing device) may experience problems such as bugs, memory leaks, crashes, hang-ups, and so forth. One technique to discover and resolve such problems is through live diagnosis, analysis, and/or debugging of processes on a user's computing device in the field. However, traditional techniques for live diagnosis of a process may be quite disruptive to the user as these techniques involve suspending the process for the duration of the diagnosis. Such diagnosis can last anywhere from tens of seconds, for leak detection and dump creation, to several hours or even days for debugging of processes with very large memory allocations. In addition, live diagnosis of a process following a crash or a hang may prevent restarting of the process until the diagnosis is complete.